package com.util.SetUtil;

/**
 * @Description:
 * @Author: yangzhiwei
 * @Date: 2021/5/26 9:56
 */
public class SetUtil {
    /**
     *  用于CSV类型的数据的 子集判定
     * @param set 给定父集合
     * @param subSet 给定子集合
     * @return 两者关系成立 true，不成立 false
     */
    public static boolean isSubset(String set, String subSet) {
        if (subSet == null) {
            return true;
        } else {
            if (set == null) {
                return false;
            } else {
                // **** 子集和父集都不等于null
                String[] subElements = subSet.split(",");
                for (String element: subElements) {
                    if (!set.contains(element)) {
                        return false;
                    }
                }
                return true;
            }
        }
    }

    public static boolean isSetEqual(String set1, String set2) {
        if (set1 == null && set2 == null) {
            return true;
        } else if (set1 == null || set2 == null) {
            return false;
        } else {
            // **** 子集和父集都不等于null
            String[] str1 = set1.split(",");
            String[] str2 = set2.split(",");
            if (str1.length != str2.length) {
                return false;
            } else {
                for (String element: str1) {
                    if (!set2.contains(element)) {
                        return false;
                    }
                }
                return true;
            }

        }
    }
}
